/**
 * 等级提升模块
 * 只执行一次, 执行后设置变量标记本次脚本已经执行过等级提升的模块。
 */
let isUtilsLoaded = false
var utils = { autoJSUtil: null, gestureUtil: null, imageUtil: null }

function main() {
    // 判断是否在当前阶段
    console.warn('等级提升模块执行...')
    const levelingModuleStorage = storages.create('levelingModuleStorage')
    if (levelingModuleStorage.get('complete')) {
        console.error('今日已完成练级')
        return
    }
    if (!isUtilsLoaded) {
        loadUtils()
        isUtilsLoaded = true
    }
    // 业务逻辑
    const pos = utils.imageUtil.findImageInCapture('level/icon.png', 0.6)
    if(!pos) {
        return
    } else {
        const heroArray = ['huangmao', 'lansi']
        for(let hero of heroArray) {
            const pos2 = utils.imageUtil.findImageInCapture('level/icon.png', 0.6)
            click(pos2.x, pos2.y)
            sleep(2000)
            utils.imageUtil.findImageClick(`level/${hero}.png`, 0.8)
            sleep(2000)
            utils.imageUtil.findImageClick('level/skip.png', 0.8)
            sleep(2000)
            utils.imageUtil.findImageClick('level/xiangqin.png', 0.8)
            sleep(2000)
            utils.imageUtil.findImageClick('level/level-up.png', 0.8)
            sleep(2000)
            utils.imageUtil.findImageClick('level/up-one.png', 0.8)
            sleep(2000)
            // 职业进阶
            zhiyejinjie()
            // 一键装备, 装备升级
            fitout()   
        }
        // 完成练级, 退出
        levelingModuleStorage.put('complete', true)
    }
}

function fitout() {
    utils.imageUtil.findImageClick('level/zhuangbei.png', 0.8)
    sleep(500)
    utils.imageUtil.findImageClick('level/zhuangbei.png', 0.8)
    sleep(500)
    utils.imageUtil.findImageClick('level/onekeyfix.png', 0.8)
    sleep(2500)
    goback()
    sleep(2500)
    goback()
    sleep(2500)
    goback()
}

function goback() {
    const gobackPos = utils.imageUtil.findImageInCapture('level/goback.png')
    if (gobackPos) {
        click(gobackPos.x, gobackPos.y)
    } else {
        const gobackPos2 = utils.imageUtil.findImageInCapture('level/goback-grey.png')
        if (gobackPos2) {
            click(gobackPos2.x, gobackPos2.y)
        }
    }
}

function zhiyejinjie() {
    utils.imageUtil.findImageClick('level/zhiye.png', 0.8)
    sleep(1500)
    utils.imageUtil.findImageClick('level/zhiye.png', 0.8)
    sleep(1500)
    utils.imageUtil.findImageClick('level/jinjie.png', 0.8)
    sleep(1500)
    utils.imageUtil.findImageClick('level/zhiye.png', 0.8)
    sleep(1500)
    utils.imageUtil.findImageClick('level/zhiye.png', 0.8)
}

function loadUtils() {
    const configStorage = storages.create('config')
    utils.autoJSUtil = eval(configStorage.get('autoJSUtil'))
    utils.gestureUtil = eval(configStorage.get('gestureUtil'))
    utils.imageUtil = eval(configStorage.get('imageUtil'))
}

main()
